// function Stu(name, age, gender) {
//     this.name = name;
//     this.age = age;
//     this.gender = gender;
//     this.type = "学生"
// }

// function Teacher(name, age, gender) {
//     this.name = name;
//     this.age = age;
//     this.gender = gender;
//     this.type = "老师"
// }

//---------通过call/apply方法去继承-------------
// f.call(argthis, arg1,arg2,arg3)
// f.apply(argthis, [arg1,arg2,arg3])

// function Person(name, age, gender) {
//     this.name = name;
//     this.age = age;
//     this.gender = gender;
//     this.say = function() { console.log(`你好，我是${this.name}`) }
// }

// function Stu(name, age, gender) {
//     // Person.call(this, name, age, gender);
//     Person.apply(this, arguments)
//     this.type = "学生"
// }

// function Teacher(name, age, gender) {
//     // Person.call(this, name, age, gender);
//     Person.apply(this, arguments)
//     this.type = "老师"
// }

//-----------通过原型去继承-----------------
// function Person(name, age, gender) {
//     this.name = name;
//     this.age = age;
//     this.gender = gender;
//     this.say = function() { console.log(`你好，我是${this.name}`) }
// }

// function Stu(name, age, gender) {
//     this.type = "学生"
//         //this.__proto__ 指向原型，用Perosn()生成的一个新对象去覆盖对象原来的原型
//     this.__proto__ = new Person(name, age, gender)
//         // 再把原型的constructor改回来
//     this.__proto__.constructor = Stu
// }

// function Teacher(name, age, gender) {
//     this.__proto__ = new Person(name, age, gender)
//     this.__proto__.constructor = Teacher
//     this.type = "老师"
// }

// Stu.prototype = new Person()

// s1 = new Stu("毛从平", 22, "男");
// t1 = new Teacher("苍老师", 25, "女")